package com.kuang.volatileTest;

import java.util.concurrent.TimeUnit;

public class JMMDemo {

    // 不加 volatile 程序就会死循环！
// 加 volatile 可以保证可见性
    private volatile static int num = 0;
    ///2、不保证原子性
   /// 原子性 : 不可分割
    ///线程A在执行任务的时候，不能被打扰的，也不能被分割。要么同时成功，要么同时失败。
    public static void main(String[] args) { // main
        new Thread(()->{ // 线程 1 对主内存的变化不知道的
            while (num==0){
            }
        }).start();
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        num = 1;
        System.out.println(num);
    }
}
